package com.nf.dbutils.handlers;

import com.nf.dbutils.RowProcessor;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;

public class KeyedMapHandler<K> extends AbstractKeyedHandler<K,Map<String,Object>>{
    public KeyedMapHandler() {
        this(1,null);
    }

    public KeyedMapHandler(int columnIndex) {
        this(columnIndex, null);
    }

    public KeyedMapHandler(String columnName) {
        this(1, columnName);
    }

    /**
     * 实例化一个对象时，一定会调用此类的构造函数
     *
     * 每一个类的构造函数执行的时候，会预先调用父的默认构造函数
     *
     * 如果父类没有默认构造函数，那么就需要你手动的指定调用父类的哪一个构造函数
     * 必须先调用父类构造函数之后再写本类的初始化逻辑
     * @param columnIndex
     * @param columnName
     */
    public KeyedMapHandler(int columnIndex, String columnName) {
        super(columnIndex, columnName);
    }

    @Override
    protected Map<String, Object> createRow(ResultSet rs) throws SQLException {
        return rowProcessor.toMap(rs);
    }
}
